import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter/cupertino.dart';
import 'package:myflutterproject/routes.dart';
import 'package:myflutterproject/splash.dart';

/**
 * main.dart 这个文件就是 flutter 的入口文件
 * main() 方法是 dart 的入口方法
 * runApp() 方法是 flutter 的入口方法
 */
void main() {
  runApp(MyApp());
}

/// MaterialApp 是一个方便的 Widget，
/// 它封装了应用程序实现 Material Design 所需要的 一些 Widget。
/// 一般作为顶层 widget 使用。
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      //国际语言包  日期选择之类的显示中文
      localizationsDelegates: [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        FallbackCupertinoLocalisationsDelegate(),
      ],
      supportedLocales: [const Locale('zh', 'CH')],

      //是否显示debug标签
      debugShowCheckedModeBanner: false,
      //应用名称
      title: '第一个flutter',
      //主题
      theme: ThemeData(
        // primarySwatch是主题颜色的一个样本，通过它可以在一些条件下生成一些其他的属性
        // 如果没有指定primaryColor，并且当前主题不是深色主题，
        // 那么primaryColor就会默认为primarySwatch指定的颜色，
        // 还有一些相似的属性如accentColor、indicatorColor等也会受其影响
        primarySwatch: Colors.pink, //主题颜色样本
        primaryColor: Colors.white, //主色，决定导航栏颜色
        primaryColorBrightness: Brightness.light, //深色还是浅色
      ),
      home: Splash(),
      //去启动页
      routes: routes,
    );
  }
}

/*处理CupertinoAlertDialog国际化引起的报错*/
class FallbackCupertinoLocalisationsDelegate
    extends LocalizationsDelegate<CupertinoLocalizations> {
  const FallbackCupertinoLocalisationsDelegate();

  @override
  bool isSupported(Locale locale) => true;

  @override
  Future<CupertinoLocalizations> load(Locale locale) =>
      DefaultCupertinoLocalizations.load(locale);

  @override
  bool shouldReload(FallbackCupertinoLocalisationsDelegate old) => false;
}
